package com.hd123.rumba.gwt.widget2.client.grid.renderer;

import com.hd123.rumba.gwt.widget2.client.form.RSimpleCheckBox;

/**
 * 复选框渲染器，如果只是希望展示布尔值而不希望数据被改变，则应使用RBooleanRenderer。<br>
 * provider应提供的Boolean或可以转换为Boolean的String类型数据，
 * 若provider提供的是null则清除复选框。
 * 
 * @author LiQi
 * 
 */
public class RCheckBoxRenderer extends RSimpleCheckBox implements RCellRenderer {

  public Object getValue() {
    return new Boolean(isChecked());
  }

  /**
   * 可以传入Boolean类型，或者内容为"true"或"false"的字符串
   */
  public void setValue(Object value) {
    if (value == null)
      setChecked(false);
    if (value instanceof Boolean) {
      setChecked(((Boolean) value).booleanValue());
    } else if (value instanceof String) {
      setChecked((new Boolean((String) value)).booleanValue());
    }
  }

}
